package cn.yy.toyflow.model;

import cn.yy.toyflow.entity.*;
import cn.yy.toyflow.entity.Process;
import lombok.Getter;

import java.util.List;

public class ProcessDef {
    private Process process;
    /**
     * define operation groups, the base of action defining
     */
    private List<Group> groups;
    private List<GroupMember> groupMembers;
    /**
     * define the graph, and actions attached to transitions
     */
    private List<State> states;
    private List<Transition> transitions;
    private List<Action> actions;
    /**
     * predefine value keys needed in the process
     */
    private List<RequestData> requestDataList;

    public Process getProcess() {
        return process;
    }

    public ProcessDef setProcess(Process process) {
        this.process = process;
        return this;
    }

    public List<Group> getGroups() {
        return groups;
    }

    public ProcessDef setGroups(List<Group> groups) {
        this.groups = groups;
        return this;
    }

    public List<GroupMember> getGroupMembers() {
        return groupMembers;
    }

    public ProcessDef setGroupMembers(List<GroupMember> groupMembers) {
        this.groupMembers = groupMembers;
        return this;
    }

    public List<State> getStates() {
        return states;
    }

    public ProcessDef setStates(List<State> states) {
        this.states = states;
        return this;
    }

    public List<Transition> getTransitions() {
        return transitions;
    }

    public ProcessDef setTransitions(List<Transition> transitions) {
        this.transitions = transitions;
        return this;
    }

    public List<Action> getActions() {
        return actions;
    }

    public ProcessDef setActions(List<Action> actions) {
        this.actions = actions;
        return this;
    }

    public List<RequestData> getRequestDataList() {
        return requestDataList;
    }

    public ProcessDef setRequestDataList(List<RequestData> requestDataList) {
        this.requestDataList = requestDataList;
        return this;
    }
}
